package com.yy.wga.mp.module.pay.common.eunms;

import com.yy.wga.mp.common.utils.common.StringUtils;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 微信订单状态
 * @author guochao
 * @date 2021/6/18
 */
@Getter
@AllArgsConstructor
public enum EWechatTradeState {
    /**
     * 我方支付状态 1、待支付 2、支付成功 3、支付失败 4、转入退款 5、交易取消
     * 微信交易状态
     *    SUCCESS：支付成功
     *    REFUND：转入退款
     *    NOTPAY：未支付
     *    CLOSED：已关闭
     *    REVOKED：已撤销（付款码支付）
     *    USERPAYING：用户支付中（付款码支付）
     *    PAYERROR：支付失败(其他原因，如银行返回失败)
     */
    SUCCESS(EPayStatus.SUCCESS,  "支付成功"),
    REFUND(EPayStatus.REFUND, "转入退款"),
    NOTPAY(EPayStatus.CANCEL, "未支付"),
    CLOSED(EPayStatus.CANCEL, "已关闭"),
    REVOKED(EPayStatus.CANCEL, "已撤销"),
    USERPAYING(EPayStatus.WAIT, "用户支付中"),
    PAYERROR(EPayStatus.FAIL, "支付失败"),
    ;

    private final EPayStatus payStatus;

    private final String desc;

    public static EWechatTradeState getByType(String type) {
        if (StringUtils.isNotBlank(type)) {
            for (EWechatTradeState value : EWechatTradeState.values()) {
                if (value.name().equals(type)) {
                    return value;
                }
            }
        }
        return null;
    }
}
